package com.time.auth.domain.service;

import cn.dev33.satoken.stp.SaTokenInfo;
import com.time.auth.domain.entity.AuthAdminUserBO;

/**
 * 管理员用户服务领域层接口
 *
 * @author: HuangQi
 * @date: Created in 15:09 2025/9/18
 * @description: 管理员用户服务领域层接口
 */
public interface AuthAdminUserDomainService {
    /**
     * 注册管理员用户
     *
     * @param authAdminUserBO 注册管理员用户信息
     * @param userType        用户类型
     * @return 注册结果
     */
    Boolean register(AuthAdminUserBO authAdminUserBO, Integer userType);

    /**
     * 更新管理员用户信息
     *
     * @param authAdminUserBO 管理员用户信息
     * @return 更新结果
     */
    Boolean update(AuthAdminUserBO authAdminUserBO);

    /**
     * 获取管理员用户信息
     *
     * @param authAdminUserBO 需要获取的管理员用户
     * @return 管理员用户信息
     */
    AuthAdminUserBO getUserInfo(AuthAdminUserBO authAdminUserBO);

    /**
     * 管理员用户登录
     *
     * @param userName 管理员用户名
     * @param password 管理员用户密码
     * @return 登录结果
     */
    SaTokenInfo doLogin(String userName, String password);

    /**
     * 删除管理员用户
     *
     * @param authAdminUserBO 需要删除的管理员用户
     * @return 删除结果
     */
    Boolean delete(AuthAdminUserBO authAdminUserBO);
}
